/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package ReglasNegocio;
import AccesoDatos.*;

/**
 *
 * @author dani
 */
public class Recurso extends ObjReglaNegocioBase {
    private String id;
    private Actividad actividad;
    private String descripcion;
    
    public Recurso(Dato id) {
        super(id);
        this.id=this.campo.get(0).getValor(); 
        
    }
    
    public Recurso() {
        super();
    }
    
    public Actividad getFkActividad() {
        return this.actividad;
    }
    
    public void setFkActividad(Actividad a) {
        this.actividad=a;
    }
    
    public String getDescripcion() {
        return this.descripcion;
    }
    
    public void setDescripcion(String descripcion) {
        this.descripcion=descripcion;
    }

    @Override
    protected Boolean asignarCampos() {
        String buscar="select * from "+this.getNombreObjeto();
        buscar+=" where "+this.campo.get(0).getNombre();
        buscar+="='"+this.campo.get(0).getValor()+"'";
        
        Vista v=this.conn.crearVista(buscar);
        if(v.getNRegistros()>0) {
            long ida=(Long)v.getRegistro(0, 1);
            this.actividad=new Actividad(new Dato("id",String.valueOf(ida)));            
            this.descripcion=(String) v.getRegistro(0, 2);
            return true;
        }
        else
            return false;
    }
    
    @Override
    public void Actualizar() {
        String update="update "+this.getNombreObjeto();
        update+=" set ";
        update+="fkactividad='"+this.actividad.getId()+"',";
        update+="descripcion='"+this.descripcion+"' where id='"+this.getIdentificador().getValor()+"'";
        
        this.conn.ejecutarActualizacion(update);
        this.asignarCampos();
    }
    
    @Override
    public int Crear() {
        Dato[] datos=new Dato[2];
        datos[0]=new Dato("descripcion",this.descripcion);
        datos[1]=new Dato("fkactividad",this.actividad.getId());
        return this.conn.Agregar(datos, this.getNombreObjeto());
    }
}
